OCPP 2.0.1 UnlockConnector 메시지

 

UnlockConnector 개요

UnlockConnector는 중앙 시스템(CSMS)에서 충전소로 보내는 커넥터 잠금 해제 요청 메시지입니다. 이 메시지를 통해 CSMS는 충전이 완료되었거나 비상 상황에서 물리적으로 잠긴 충전 커넥터를 원격으로 해제할 수 있으며, 사용자가 충전 케이블을 분리할 수 있도록 돕는 중요한 기능을 제공합니다.

메시지 구조

Request (CSMS → 충전소)

{
  "evseId": 1,
  "connectorId": 1
}

Response (충전소 → CSMS)

{
  "status": "Unlocked",
  "statusInfo": {
    "reasonCode": "NoError",
    "additionalInfo": "커넥터가 성공적으로 잠금 해제되었습니다"
  }
}

주요 필드 설명

Request 필드들

evseId 필드 (필수)

필드명 필수여부 타입 설명
evseId 필수 Integer 잠금 해제할 EVSE의 식별자

connectorId 필드 (필수)

필드명 필수여부 타입 설명
connectorId 필수 Integer 잠금 해제할 커넥터의 식별자

Response 필드들

status 필드 (필수)

설명
Unlocked 잠금 해제됨 - 커넥터가 성공적으로 해제됨
UnlockFailed 잠금 해제 실패 - 기술적 문제로 해제 불가
OngoingAuthorizedTransaction 진행 중인 인증된 트랜잭션 - 충전 중이므로 해제 불가
UnknownConnector 알 수 없는 커넥터 - 지정된 커넥터가 존재하지 않음

statusInfo 필드 (선택사항)

필드명 필수여부 타입 설명
reasonCode 선택사항 String 상태 이유 코드
additionalInfo 선택사항 String 추가 상세 정보

실제 사용 예제

예제 1: 성공적인 커넥터 잠금 해제

// Request
{
  "evseId": 1,
  "connectorId": 1
}

// Response
{
  "status": "Unlocked",
  "statusInfo": {
    "reasonCode": "NoError",
    "additionalInfo": "커넥터 1이 잠금 해제되었습니다."
  }
}

예제 2: 충전 중이라 잠금 해제 불가

// Request
{
  "evseId": 2,
  "connectorId": 1
}

// Response
{
  "status": "OngoingAuthorizedTransaction",
  "statusInfo": {
    "reasonCode": "ChargingInProgress",
    "additionalInfo": "활성 충전 세션이 진행 중입니다."
  }
}

예제 3: 기술적 문제로 잠금 해제 실패

// Request
{
  "evseId": 1,
  "connectorId": 2
}

// Response
{
  "status": "UnlockFailed",
  "statusInfo": {
    "reasonCode": "MechanicalFailure",
    "additionalInfo": "커넥터 잠금 메커니즘 오류"
  }
}

예제 4: 존재하지 않는 커넥터

// Request
{
  "evseId": 3,
  "connectorId": 5
}

// Response
{
  "status": "UnknownConnector",
  "statusInfo": {
    "reasonCode": "ConnectorNotFound",
    "additionalInfo": "EVSE 3에 커넥터 5가 존재하지 않습니다."
  }
}

예제 5: 비상 상황에서의 강제 해제

// Request
{
  "evseId": 1,
  "connectorId": 1
}

// Response
{
  "status": "Unlocked",
  "statusInfo": {
    "reasonCode": "EmergencyUnlock",
    "additionalInfo": "비상 해제 수행됨. 충전이 즉시 중단되었습니다."
  }
}

예제 6: 전력 공급 중단으로 인한 해제

// Request
{
  "evseId": 2,
  "connectorId": 1
}

// Response
{
  "status": "Unlocked",
  "statusInfo": {
    "reasonCode": "PowerFailureUnlock",
    "additionalInfo": "정전으로 인한 자동 잠금 해제."
  }
}

예제 7: 사용자 요청에 의한 해제

// Request
{
  "evseId": 1,
  "connectorId": 1
}

// Response
{
  "status": "Unlocked",
  "statusInfo": {
    "reasonCode": "UserRequested",
    "additionalInfo": "사용자 요청에 따른 잠금 해제."
  }
}

잠금 해제 시나리오

정상적인 충전 완료 후 해제

  1. 충전 완료 (100% 또는 설정된 한계 도달)
  2. 트랜잭션 종료 (TransactionEvent.Ended)
  3. CSMS에서 UnlockConnector 요청
  4. 커넥터 잠금 해제 성공
  5. 사용자가 케이블 분리

비상 상황에서의 강제 해제

  1. 비상 상황 발생 (화재, 의료 응급상황 등)
  2. 운영자 또는 자동 시스템에서 강제 해제 요청
  3. 진행 중인 충전 즉시 중단
  4. 커넥터 잠금 해제
  5. SecurityEventNotification 전송

기술적 문제 해결

  1. 사용자가 케이블 분리 불가 신고
  2. 원격 진단 수행
  3. UnlockConnector 요청 시도
  4. 실패 시 현장 기술자 파견
  5. 물리적 수리 후 정상 작동 확인

안전 고려사항

전기적 안전

  • 충전 전류가 완전히 차단된 후 잠금 해제
  • 접지 연결 상태 확인
  • 절연 저항 테스트 통과 후 해제

기계적 안전

  • 커넥터 온도가 안전 범위 내인지 확인
  • 기계적 잠금 장치 상태 점검
  • 케이블 손상 여부 확인

보안 고려사항

  • 인증된 사용자/시스템의 요청인지 확인
  • 비정상적인 해제 시도 로깅
  • 강제 해제 시 보안 이벤트 기록

오류 처리 및 복구

기계적 오류

{
  "status": "UnlockFailed",
  "statusInfo": {
    "reasonCode": "MechanicalJam",
    "additionalInfo": "커넥터 잠금 장치 걸림. 수동 해제 도구 필요"
  }
}

전기적 오류

{
  "status": "UnlockFailed", 
  "statusInfo": {
    "reasonCode": "ElectricalFault",
    "additionalInfo": "잠금 해제 모터 전원 공급 오류. 전기 시스템 점검 필요"
  }
}

통신 오류

{
  "status": "UnlockFailed",
  "statusInfo": {
    "reasonCode": "CommunicationError", 
    "additionalInfo": "커넥터 제어 모듈과 통신 불가. 하드웨어 재시작 필요"
  }
}

중요 포인트

  • UnlockConnector는 사용자 편의성과 안전성을 동시에 고려해야 하는 중요한 메시지입니다
  • 충전 중인 커넥터는 안전상의 이유로 잠금 해제가 제한됩니다
  • 비상 상황에서는 안전을 위해 강제 잠금 해제가 가능해야 합니다
  • 잠금 해제 실패 시 사용자에게 명확한 안내와 대안을 제공해야 합니다
  • 모든 잠금 해제 이벤트는 보안 감사를 위해 로깅되어야 합니다
  • 기계적 고장 시 현장 기술자 지원이 필요할 수 있습니다
  • 잠금 해제 후에는 ConnectorStatusNotification으로 상태 변화를 알려야 합니다
  • 정전이나 통신 장애 시에도 안전한 잠금 해제 메커니즘이 필요합니다

이 메시지를 통해 사용자는 충전 완료 후 안전하게 케이블을 분리할 수 있으며, 비상 상황에서는 신속한 대응이 가능하고, 전체적으로 안전하고 사용자 친화적인 충전 경험을 제공할 수 있습니다.